<!-- 
    可以通过原型对象，对原来的内置对象进行扩展自定义的方法，比如给数组增加自定义求偶数和的功能
 -->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //原型对象的应用，扩展内置对象方法
        console.log(Array.prototype);
        Array.prototype.sum = function () {   //  在Array.prototype原型对象里面定义sum
            var sum = 0;                      //其实就是追加这个方法
            for (var i = 0; i < this.length; i++) {
                sum += this[i];
            }
            return sum;
        }

        // Array.prototype={          //这里是覆盖，把里面的方法全部覆盖就一个sum方法
        //     sum:function(){
        //         var sum = 0;
        //     for (var i = 0; i < this.length; i++) {
        //         sum += this[i];
        //     }
        //     return sum;
        //     }
        //覆盖后，，没有constructor指向构造函数了，所以往原型里面找不到原型的方法了

        // }
        var arr = [1, 2, 4];//大写构造函数Array创造出来的。
        console.log(arr.sum());
        console.log(Array.prototype);//原型里面已经有了sum这个方法。


        var arr1 = new Array(11, 22, 33);
        console.log(arr1.sum());
    </script>
</body>

</html>